5
תגובות

trim ו strlen

פתח Ben ,
היי.
אוכל לדעת למה הפונקציה ()trim אינה מורידה באמת את הרווחים ?
ולמה הפונקציה ()mb_strlen מחשבת אות כ 2 תווים ומספר כתו אחד בודד ?

חשבתי להשתמש במקום trim ב preg_replace בשביל להסיר את כל הרווחים במחרוזת, יש משהו יותר טוב ?
בכללי, אני רוצה לחשב את מספר התווים במחרוזת, רק את התווים לא כולל הרווחים, לכן אני מסיר את הרווחים ואז מחשב את התווים ומשום מה כלום לא עובד.

5 תשובות

avatar ענה Ben ב 06 למרץ 2013 #

בקשר ל strlen, הסתדרתי. הייתי צריך להוסיף UTF-8 כפרמטר שני.
לאלה שהסתבכו ומצאו את השאלה הזו בתוצאות של גוגל:

echo mb_strlen("סתם משהו", "UTF-8");


כמובן שזה סופר גם את הרווחים, לכן התוצאה תיהיה 8.

בקשר ל trim, החלפתי את זה preg_replace. יותר שימושי, לא ?

avatar ענה OrelBeY ב 06 למרץ 2013 #

אני לא רואה שום סיבה ש-trim לא יוריד רווחים לבנים מתחילת המחרוזת או מסופה. אתה יכול לתת את הקוד?
אל תשתמש ב-RegEx כשיש לך משהו אחר.

avatar ענה Ben ב 06 למרץ 2013 #

@OrelBeY, זה הקוד, הוא ממש פשוט האמת או שאולי יש משהו שאני לא מוסיף:
http://phpguide.co.il/phplive?code=685

avatar ענה Michael ב 06 למרץ 2013 #

From the documentation: trim — Strip whitespace (or other characters) from the beginning and end of a string

avatar ענה OrelBeY ב 06 למרץ 2013 #

כמו שמיכאל אמר, הפונקציה trim מסירה רווחים לבנים מההתחלה של המחרוזת ומסופה, ולא מעבר לזה. במקרה הזה אתה כן תצטרך להשתמש בביטוי רגולרי. שים לב איזה סוגי רווחים לבנים אתה רוצה להסיר (רווח רגיל, שורה חדשה...).